package com.sx.sx1.lintcode.day717;

import java.util.Arrays;

public class LC304 {
    static class Solution {
        /**
         * @param nums: Unordered array
         * @return: return the largest product
         */
        public long maximumProduct(int[] nums) {
            if(nums.length<3) return 0;
            Arrays.sort(nums);
            int n = nums.length;
            long a= (long)nums[n-3];
            long b = (long) nums[n-2];
            long c = (long) nums[n-1];
            long d = (long) nums[0];
            long e = (long) nums[1];

            return Math.max(a*b*c,d*e*c);

            //用组合会超时
        }
    }

    public static void main(String[] args) {
        Solution obj = new Solution();
        System.out.println(obj.maximumProduct(new int[]{3,4,1,2}));
    }

}


/*
LintCode-Logo
搜索题目、标签、题集
中文
您上个月的个人报告已生成，点击查看
avatar
304 · 最大乘积
算法
中等
通过率
54%

题目
题解4
笔记
讨论7
排名
记录
描述
给定一个无序数组，包含正数、负数和0，要求从中找出3个数的乘积，使得乘积最大

最短时间刷“透”算法面试：《66页算法宝典》.pdf

微信添加【jiuzhangfeifei】备注【66】领取


nums.size <= 500000nums.size<=500000
-10000 <= nums[i] <= 10000−10000<=nums[i]<=10000
样例
输入:  nums = [3,4,1,2]
输出: 24
标签
推荐课程

系统设计 System Design 2024版
数据库、API、GFS、视频流等16大系统设计详解，实战练习拿下面试/晋升“拦路虎”
299/3325
已开启智能提示
发起考试
30 分 00 秒
123456789

控制台
        历史提交

 */
